Current software testing processes typically require a functional testing team to design manual test cases based upon, e.g., requirements present in a system design specification (SDS) and the manual test cases are then converted into automation scripts by automation engineers. Today's computing devices, such as PCs, tablets, and smartphones, are available in a wide variety of hardware and software platforms each having different operational requirements and form factors. Most of these devices provide browser-based software to enable users to connect to the internet and access various applications. Today's applications typically require the same test cases to be performed across multiple platforms and layouts, where each application often has slight variations in terms of appearance and function when executed on each device due to elements like screen size, user interface design, hardware profile, and so forth. As a result, the ability for application developers to quickly and efficiently test such browser-based applications across the spectrum of devices, platforms, and layouts—without much (if any) manual tester involvement—has become important.
In addition, there is an increased reliance on automation testing tools to execute test cases against the spectrum of browser-based applications and platforms. However, these automation testing tools are typically limited to executing test cases written in a specific language or customized for a certain type of browser-based application. Generalized test cases cannot be easily and efficiently translated into tool-specific test cases that can be automatically executed against a variety of browser applications.
Furthermore, in traditional testing frameworks, there is a dichotomy between a group of test engineers (TEs)—who know the browser application thoroughly and how to optimally test the application—and software programmers or developers that have experience writing test case code in programming languages (e.g., Java, C++). As a result, TEs must rely on software programmers to craft test cases for execution. As a result, the test scripts generated by the software programmers are generally not optimized for thoroughly testing the browser application and such test scripts are not easily adaptable or modifiable for changing testing scenarios or requirements across multiple platforms.